home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1996 September / JCSM Shareware Collection (JCS Distribution) (September 1996).ISO / prgtools / euphor13.zip / SHROUD.EX < prev    next >
Text File  |  1995-05-12  |  9KB  |  693 lines

  1.     ----------------------------
  2.     --  Source Code Shrouder  --
  3.     ----------------------------
  4.  
  5. -- usage: ex shroud filename.ex > newname.ex
  6.  
  7. -- 1. Pulls together all include files into a single file.
  8. -- 2. Eliminates all comments and superfluous white space.
  9. -- 3. Replaces most identifiers by short meaningless names.
  10. -- 4. Replaces keywords and builtin names by single-byte codes.
  11. -- 5. Replaces strings by sequences of ascii codes. 
  12.  
  13. -- Note: Symbols declared as global in the main .ex file are not changed.
  14. -- This lets you create library routines with meaningful names for other
  15. -- programmers to include. (Your names should be at least 2 or 3 characters 
  16. -- long to avoid possible conflicts.)
  17.  
  18. -- Your program should be free of any syntax errors before running
  19. -- the shrouder on it.
  20.  
  21. -- The result is an unreadable, unmaintainable file that runs identically
  22. -- to your original source (which you will keep for yourself). You can 
  23. -- distribute this file (plus the PD Edition of Euphoria) without 
  24. -- "giving away" your source. Shrouded source has certain advantages over 
  25. -- .exe files: 
  26. --      - you can add readable comments 
  27. --      - you can document certain changes that can be made to reconfigure 
  28. --        your program
  29. --      - your code could serve as a library of routines that others could 
  30. --        build on
  31. --      - the same shrouded source might run on more than one platform
  32. --        (as long as Euphoria exists on that platform). 
  33. --      - shrouded source is extremely compact 
  34.  
  35. -- example:
  36. --              copy ed.ex edsrc.ex
  37. --              ex shroud edsrc.ex > ed.ex
  38. -- This gives you a shrouded version of ed. Because it is smaller, it will 
  39. -- start up slightly faster than the original ed.ex
  40.  
  41. -- We ran the shrouder on *itself* to get ...
  42.  
  43. ùwarning
  44. ùtype_check
  45. îB=1,C=0
  46. îD=B 
  47. îE=B 
  48. îF=-1
  49. îG=1,H=2
  50. îI=128,
  51. J=170
  52. îK={
  53. {
  54. 105,102},{
  55. 101,110,100},{
  56. 116,104,101,110},{
  57. 112,114,111,99,101,100,117,114,101},{
  58. 101,108,115,101},{
  59. 102,111,114},{
  60. 114,101,116,117,114,110},
  61. {
  62. 100,111},{
  63. 101,108,115,105,102},{
  64. 119,104,105,108,101},{
  65. 116,121,112,101},{
  66. 99,111,110,115,116,97,110,116},{
  67. 116,111},{
  68. 97,110,100},{
  69. 111,114},
  70. {
  71. 101,120,105,116},{
  72. 102,117,110,99,116,105,111,110},{
  73. 103,108,111,98,97,108},{
  74. 98,121},{
  75. 110,111,116},{
  76. 105,110,99,108,117,100,101},
  77. {
  78. 119,105,116,104},{
  79. 119,105,116,104,111,117,116}}
  80. îL={
  81. {
  82. 108,101,110,103,116,104},{
  83. 112,117,116,115},{
  84. 105,110,116,101,103,101,114},{
  85. 115,101,113,117,101,110,99,101},{
  86. 112,111,115,105,116,105,111,110},{
  87. 111,98,106,101,99,116},
  88. {
  89. 97,112,112,101,110,100},{
  90. 112,114,101,112,101,110,100},{
  91. 112,114,105,110,116},{
  92. 112,114,105,110,116,102},
  93. {
  94. 99,108,101,97,114,95,115,99,114,101,101,110},{
  95. 102,108,111,111,114},{
  96. 103,101,116,99},{
  97. 103,101,116,115},{
  98. 103,101,116,95,107,101,121},
  99. {
  100. 114,97,110,100},{
  101. 114,101,112,101,97,116},{
  102. 97,116,111,109},{
  103. 99,111,109,112,97,114,101},{
  104. 102,105,110,100},{
  105. 109,97,116,99,104},
  106. {
  107. 116,105,109,101},{
  108. 99,111,109,109,97,110,100,95,108,105,110,101},{
  109. 111,112,101,110},{
  110. 99,108,111,115,101},{
  111. 116,114,97,99,101},{
  112. 103,101,116,101,110,118},
  113. {
  114. 115,113,114,116},{
  115. 115,105,110},{
  116. 99,111,115},{
  117. 116,97,110},{
  118. 108,111,103},{
  119. 115,121,115,116,101,109},{
  120. 100,97,116,101},{
  121. 114,101,109,97,105,110,100,101,114},
  122. {
  123. 112,111,119,101,114},{
  124. 109,97,99,104,105,110,101,95,102,117,110,99},{
  125. 109,97,99,104,105,110,101,95,112,114,111,99},{
  126. 97,98,111,114,116},{
  127. 112,101,101,107},{
  128. 112,111,107,101},
  129. {
  130. 99,97,108,108},{
  131. 115,112,114,105,110,116,102}}
  132. îM=1,
  133. N=2,
  134. O=3,
  135. P=4,
  136. Q=5,
  137. R=6,
  138. S=7,
  139. T=8
  140. îU={
  141. 43,45,42,47,91,93,40,41,123,125,44,46,61,38,39,34,60,62}
  142. îV=-999
  143. îW=1,X=2,Y=3
  144. ïZ(¡a)
  145. ç╛(a,{Y,X,W})
  146. éï
  147. ïa(¡b)
  148. çb>=-1 
  149. éï
  150. ïb(¡c)
  151. çc>=FÄc<=255Åc=V
  152. éï
  153. ïc(¡d)
  154. çd>=0
  155. éï
  156. ïd(¡e)
  157. çe=BÅe=C
  158. éï
  159. «e
  160. äf()
  161. e=╗(N,255)
  162. e[97..122]=O
  163. e[65..90]=O
  164. e[95]=O
  165. e[48..57]=M
  166. e[35]=T
  167. e[91]=P
  168. e[93]=P
  169. e[40]=P
  170. e[41]=P
  171. e[123]=P
  172. e[125]=P
  173. e[39]=Q
  174. e[34]=Q
  175. e[32]=S
  176. e[9]=S
  177. e[10]=S
  178. e[45]=R
  179. éä
  180. b g
  181. g=V
  182. æh(a i)
  183. b j
  184. üg=Vâ
  185. ç╖(i)
  186. à
  187. j=g
  188. g=V
  189. çj
  190. éü
  191. éæ
  192. äi(b j)
  193. g=j
  194. éä
  195. a j,k
  196. b l
  197. l=V
  198. äm(b n)
  199. ü╛(n,{
  200. 32,9,10})â
  201. ül=10â
  202. ç
  203. éü
  204. ün !=10â
  205. ül>IÅ╛(l,U)â
  206. ç
  207. ë╛(l,{
  208. 32,9})â
  209. ç
  210. éü
  211. éü
  212. ën>IÅ╛(n,U)â
  213. ü╛(l,{
  214. 32,9})â
  215. l=V
  216. éü
  217. éü
  218. ül !=Vâ
  219. ¼(j,l)
  220. éü
  221. l=n 
  222. éä
  223. än(«o)
  224. ül !=Vâ
  225. ¼(j,l)
  226. l=V 
  227. éü
  228. ¼(j,o)
  229. éä
  230. «o 
  231. o={}
  232. äp(«q)
  233. o=o&q
  234. éä
  235. c q
  236. q=1
  237. ær()
  238. c s,t
  239. «u
  240. ü½(o)>0â
  241. u=o[1]
  242. o=o[2..½(o)]
  243. çu
  244. éü
  245. u={}
  246. t=q
  247. èBê
  248. s=═(t,52)
  249. t=╢(t/52)
  250. üs<26â
  251. u=65+s&u
  252. à
  253. u=97+s-26&u 
  254. éü
  255. üt=0â
  256. É
  257. éü
  258. éè
  259. q=q+1
  260. ü╛(u,K)â
  261. çr()
  262. ë╛(u,L)â
  263. çr()
  264. à
  265. çu
  266. éü
  267. éæ
  268. Z s
  269. s=X
  270. d t
  271. t=C
  272. ¡u,v
  273. u=1
  274. v=1
  275. «w,x,y
  276. w={{},{}}
  277. x={{{},{}}}
  278. y={{},{}}
  279. «z
  280. z={}
  281. æBA(«BB)
  282. «BC
  283. c BD
  284. BD=0
  285. BD=╛(BB,y[G])
  286. üBDâ
  287. çy[H][BD]
  288. éü
  289. BD=╛(BB,w[G])
  290. üBDâ
  291. çw[H][BD]
  292. éü
  293. BD=╛(BB,x[u][G])
  294. üBDâ
  295. çx[u][H][BD]
  296. éü
  297. üs=Wâ
  298. BC=r()
  299. y[G]=▒(y[G],BB)
  300. y[H]=▒(y[H],BC)
  301. à
  302. üötâ
  303. s=X
  304. éü
  305. üs=Yâ
  306. ü½(z)=0â
  307. BC=BB 
  308. à
  309. BC=r()
  310. éü
  311. w[G]=▒(w[G],BB)
  312. w[H]=▒(w[H],BC)
  313. à
  314. BC=r()
  315. x[u][G]=▒(
  316. x[u][G],BB)
  317. x[u][H]=▒(
  318. x[u][H],BC)
  319. éü
  320. éü
  321. çBC
  322. éæ
  323. «BB 
  324. îBC=97-65 
  325. æBD(░BE)
  326. ¡BF
  327. åBG=1ì½(BE)ê
  328. BF=BE[BG]
  329. üBF>=97â
  330. üBF<=122â
  331. BE[BG]=BF-BC
  332. éü
  333. éü
  334. éå
  335. çBE
  336. éæ
  337. æBE(«BF)
  338. ¡BG
  339. BG=1
  340. åBH=1ì½(BF)ê
  341. üBF[BH]=92â
  342. BG=BH+1
  343. éü
  344. éå
  345. çBD(BF[BG..½(BF)])
  346. éæ
  347. «BF 
  348. BF={}
  349. æBG(«BH)
  350. BH=BE(BH)
  351. ü╛(BH,BF)â
  352. çB
  353. à
  354. BF=▒(BF,BH)
  355. çC
  356. éü
  357. éæ
  358. æBH()
  359. b BI
  360. «BJ
  361. a BK
  362. BI=V
  363. BJ={}
  364. èBI !=10ÄBI !=Fê
  365. BI=h(k)
  366. üe[BI]!=Sâ
  367. BJ=BJ&BI
  368. éü
  369. éè
  370. üBG(BJ)â
  371. çk
  372. éü
  373. z=▒(z,{k,u})
  374. v=v+1
  375. u=v
  376. x=▒(x,{{},{}})
  377. BK=┬(BB&BJ,{
  378. 114})
  379. üBK=-1â
  380. BK=┬(┼({
  381. 69,85,68,73,82})&{
  382. 92,73,78,67,76,85,68,69,92}&BJ,{
  383. 114})
  384. üBK=-1â
  385. ¼(2,{
  386. 67,111,117,108,100,110,39,116,32,111,112,101,110,32,105,110,99,108,117,100,
  387. 101,32,102,105,108,101,58,32}&BJ&10)
  388. ç-1
  389. éü
  390. éü
  391. çBK
  392. éæ
  393. æBI()
  394. a BJ
  395. ├(k)
  396. ü½(z)=0â
  397. ç-1
  398. éü
  399. BJ=z[½(z)][1]
  400. u=z[½(z)][2]
  401. z=z[1..½(z)-1]
  402. çBJ
  403. éæ
  404. æBK(╝BJ)
  405. «BL
  406. BL={}
  407. è1ê
  408. BL=48+═(BJ,10)&BL
  409. BJ=╢(BJ/10)
  410. üBJ=0â
  411. çBL
  412. éü
  413. éè
  414. éæ
  415. äBJ(b BL)
  416. üBL=110â
  417. n(BK(10))
  418. ëBL=116â
  419. n(BK(9))
  420. ëBL=114â
  421. n(BK(13))
  422. à
  423. n(BK(BL))
  424. éü
  425. éä
  426. îBL=1,BM=0
  427. îBN=I+╛({
  428. 101,110,100},K),
  429. BO=I+╛({
  430. 112,114,111,99,101,100,117,114,101},K),
  431. BP=I+╛({
  432. 102,117,110,99,116,105,111,110},K),
  433. BQ=I+╛({
  434. 116,121,112,101},K),
  435. BR=I+╛({
  436. 103,108,111,98,97,108},K),
  437. BS=I+╛({
  438. 105,110,99,108,117,100,101},K),
  439. BT=I+╛({
  440. 119,105,116,104},K),
  441. BU=I+╛({
  442. 119,105,116,104,111,117,116},K)
  443. æBV(d BW)
  444. c BX,BY,BZ 
  445. b Ba,Bb
  446. «Bc,Bd
  447. èBê
  448. Bb=h(k)
  449. üBb=Fâ
  450. çF
  451. éü
  452. BX=e[Bb]
  453. üBX=Sâ
  454. m(Bb)
  455. ëBX=Oâ
  456. Bc={Bb}
  457. èBê
  458. Bb=h(k)
  459. BX=e[Bb]
  460. üBX=Oâ
  461. Bc=Bc&Bb
  462. ëBX=Mâ
  463. Bc=Bc&Bb
  464. à
  465. i(Bb)
  466. É
  467. éü
  468. éè
  469. BY=╛(Bc,K)
  470. üBYâ
  471. üö╛(Bc,{{
  472. 105,110,99,108,117,100,101},BS})â
  473. üö╛(Bc,{{
  474. 103,108,111,98,97,108},BR})Å
  475. ½(z)=0â
  476. üDÄBWâ
  477. m(I+BY)
  478. à
  479. n(Bc)
  480. éü
  481. éü
  482. éü
  483. à
  484. BY=╛(Bc,L)
  485. üBYâ
  486. üDÄBWâ
  487. m(J+BY)
  488. à
  489. n(Bc)
  490. éü
  491. à
  492. üBWâ
  493. n(BA(Bc))
  494. à
  495. n(Bc)
  496. éü
  497. éü
  498. éü
  499. çBc
  500. ëBX=NÅBX=Pâ
  501. m(Bb)
  502. çBb 
  503. ëBX=Mâ
  504. èe[Bb]=MÅ╛(Bb,{
  505. 101,69})ê
  506. m(Bb)
  507. Bb=h(k)
  508. éè
  509. i(Bb)
  510. ëBX=Tâ
  511. m(Bb)
  512. Bb=h(k)
  513. èe[Bb]=MÅ╛(Bb,{
  514. 65,66,67,68,69,70})ê
  515. m(Bb)
  516. Bb=h(k)
  517. éè
  518. i(Bb)
  519. ëBX=Râ
  520. Bb=h(k)
  521. ü(Bb=45)â
  522. Bd=╕(k)
  523. m(10)
  524. à
  525. m(45)
  526. i(Bb)
  527. éü
  528. à
  529. Bd={}
  530. èBê
  531. Ba=h(k)
  532. üBa=10ÅBa=Fâ
  533. ¼(2,{
  534. 109,105,115,115,105,110,103,32,99,108,111,115,105,110,103,32,113,117,111,116,
  535. 101,10})
  536. É
  537. éü
  538. üBa=Bbâ
  539. É
  540. éü
  541. Bd=Bd&Ba
  542. üBa=92â
  543. Ba=h(k)
  544. Bd=Bd&Ba
  545. éü
  546. éè
  547. üEâ
  548. üBb=39â
  549. m(32)
  550. üBd[1]=92â
  551. BJ(Bd[2])
  552. à
  553. n(BK(Bd[1]))
  554. éü
  555. à
  556. m(123)
  557. BZ=1
  558. èBZ<=½(Bd)ê
  559. ü═(BZ,20)=1â
  560. m(10)
  561. éü
  562. Bb=Bd[BZ]
  563. üBb=92â
  564. BZ=BZ+1
  565. Bb=Bd[BZ]
  566. BJ(Bb)
  567. à
  568. n(BK(Bb))
  569. éü
  570. üBZ<½(Bd)â
  571. m(44)
  572. éü
  573. BZ=BZ+1
  574. éè
  575. m(125)
  576. éü
  577. à
  578. m(Bb)
  579. n(Bd)
  580. m(Ba)
  581. éü
  582. éü
  583. éè
  584. éæ
  585. äBW()
  586. ¼(j,10&BU)
  587. ¼(j,{
  588. 119,97,114,110,105,110,103,10})
  589. éä
  590. äBX()
  591. ░BY,BZ
  592. BW()
  593. BY=V
  594. èBê
  595. BY=BV(BL)
  596. ü╜(BY,F)=0â
  597. k=BI()
  598. ük=-1â
  599. m(V)
  600. ç
  601. éü
  602. ë╛(BY,{{
  603. 101,110,100},BN})â
  604. BY=BV(BL)
  605. ü╛(BY,{{
  606. 112,114,111,99,101,100,117,114,101},{
  607. 102,117,110,99,116,105,111,110},{
  608. 116,121,112,101},
  609. BO,BP,BQ})â
  610. s=X
  611. p(y[H])
  612. y={{},{}}
  613. éü
  614. ë╛(BY,{{
  615. 103,108,111,98,97,108},BR})â
  616. s=Y
  617. t=B
  618. è╛(BY,{{
  619. 103,108,111,98,97,108},BR})ê
  620. BY=BV(BL)
  621. BY=BV(BL)
  622. BY=BV(BL)
  623. ü╜(BY,40)=0â
  624. s=W
  625. éü
  626. éè
  627. ë╛(BY,{{
  628. 112,114,111,99,101,100,117,114,101},{
  629. 102,117,110,99,116,105,111,110},{
  630. 116,121,112,101},
  631. BO,BP,BQ})â
  632. BY=BV(BL)
  633. s=W
  634. ë╛(BY,{{
  635. 105,110,99,108,117,100,101},BS})â
  636. k=BH()
  637. ük=-1â
  638. ç
  639. éü
  640. ë╛(BY,{{
  641. 119,105,116,104},{
  642. 119,105,116,104,111,117,116},BT,BU})â
  643. BZ=BV(BM)
  644. ü╜(BY,{
  645. 119,105,116,104})=0Ä
  646. ╜(BZ,{
  647. 119,97,114,110,105,110,103})=0â
  648. BW()
  649. éü
  650. ë╜(BY,44)=0â
  651. t=B
  652. à
  653. t=C
  654. éü
  655. éè
  656. éä
  657. äBa()
  658. «Bb
  659. c Bc
  660. Bb=┴()
  661. ü½(Bb)!=3â
  662. ¼(2,{
  663. 117,115,97,103,101,58,32,101,120,32,115,104,114,111,117,100,32,102,105,108,
  664. 101,110,97,109,101,46,101,120,32,62,32,110,101,119,110,97,109,101,46,101,
  665. 120,10})
  666. ç
  667. éü
  668. k=┬(Bb[3],{
  669. 114})
  670. ük=-1â
  671. k=┬(Bb[3]&{
  672. 46,101,120},{
  673. 114})
  674. ük=-1â
  675. ┤(2,{
  676. 99,111,117,108,100,110,39,116,32,111,112,101,110,32,37,115,10},{Bb[3]})
  677. ç
  678. éü
  679. éü
  680. Bc=½(Bb[3])
  681. èBb[3][Bc]!=92ê
  682. Bc=Bc-1
  683. üBc=0â
  684. É
  685. éü
  686. éè
  687. BB=Bb[3][1..Bc]
  688. f()
  689. j=1 
  690. BX()
  691. éä
  692. Ba()
  693.